home *** CD-ROM | disk | FTP | other *** search
/ Workbench Add-On / Workbench Add-On - Volume 1.iso / Music / MISC / FMsynth / FMsynth.doc < prev    next >
Text File  |  1995-08-23  |  20KB  |  660 lines

  1.  
  2.                   ›1m         FMsynth  v3.7         ›m
  3.                   ›1m          User Manual          ›m
  4.  
  5.  
  6.  
  7. ›1m1 Introduction›m
  8.  
  9. Welcome to FMsynth! This is a program for generating sounds by
  10. FM Synthesis. The sounds can be played on your Amiga keyboard and
  11. saved in IFF-8SVX or raw format.
  12.  
  13.  
  14. ›1m2 Copyright›m
  15.  
  16. © Copyright 1993 by   Christian Stiens
  17.                       Heustiege 2
  18.                       D-59348 Lüdinghausen
  19.                       Germany
  20.  
  21.               E-Mail: Christian_Stiens@ouzonix.bo.open.de
  22.  
  23.                Phone: +49-2591-22857
  24.  
  25. The distribution of the complete and unchanged paket is allowed
  26. to uncommercial mailboxes/FTP-servers and to the following public
  27. domain series:
  28.  
  29.   - Fred Fish
  30.   - AMOK
  31.   - Time
  32.   - Saar
  33.   - AM/FM
  34.   - Amiga Magazin PD
  35.  
  36. You use this program on your own risk. There is no liability or
  37. responsibility for any damages caused by the use of this program.
  38.  
  39. All Rights reserved.
  40.  
  41. The MIDI Library and related files are Copyright (C) 1987, 1988,
  42. Pregnant Badger Music.  All rights reserved.
  43.  
  44.  
  45. ›1m3 Registration›m
  46.  
  47. FMsynth is Shareware and protected by a key file. Without the key file
  48. you can't save your sounds and voices. If you want to register, then
  49. please send 30 DM or 20 US$ or the equivalent amount in your local
  50. currency to me. Please send only cash (no cheques!).
  51.  
  52. Please add your full address to the registration request.
  53.  
  54. If you want to receive the key via email then tell me your internet
  55. email address.
  56.  
  57.  
  58. ›1m4 Installation›m
  59.  
  60. Copy the arp.library to LIBS: if you don't have AmigaOS 2.04 or greater.
  61.  
  62. Copy the midi.library to LIBS: if you want to play your FM sounds on
  63. a midi keyboard which is connected to the amiga.
  64.  
  65. The best place for the rexx programs is the REXX: directory because
  66. otherwise they can't be found, if they are not in the current directory.
  67.  
  68. Copy the key file (if you are happy to own one) to the directory
  69. in which FMsynth is contained, because the key is searched first in
  70. the current dir and second in "PROGDIR:".
  71.  
  72.  
  73. ›1m5 Manual›m
  74.  
  75. ›1m5.1 The FM Synthesis›m
  76.  
  77. First a little introduction to the FM Sythesis. The FM Synthesis
  78. was developed by John Chowning and used in the DX7 (one of the best
  79. sold synthesisers ever) and his successors.
  80.  
  81. The principle of the FM Synthesis is that one sinus wave modulates
  82. another sinus wave. Written as a formula it looks like:
  83.  
  84.             A(t) = Ac * sin(Fc * t + Am * sin(Fm * t))
  85.  
  86. Ac: The amplitude of the carrier wave
  87. Am: The amplitude of the modulator wave
  88. Fc: The frequency of the carrier
  89. Fm: The frequency of the modulator
  90.  
  91. As you see, the modulator wave modulates the phase of the carrier
  92. wave. This leads to the addition of harmonics to the carrier wave.
  93.  
  94. The  ratio Fc to Fm determines, whether the sound is harmonic (periodic)
  95. or non harmonic (not periodic). If the ratio is not rational
  96. (e.g. 1 to 3.1415), then the sound is not harmonic, if it is rational
  97. (e.g. 2 to 3), then the sound is harmonic. The frequency of the sound is
  98. equal to the greatest divisor of Fc and Fm.
  99.  
  100. The modulated wave has harmonics at Fc + n * Fm, where n ranges
  101. through the integers. Negative frequencies must be interpreted
  102. as positive frequencies with sign changed. The number of harmonics
  103. is determined by Am.
  104.  
  105. There are six operators (sinus generators) which can be combined in
  106. different ways (the so called algorithms).
  107.  
  108. An example of an algorithm is given in the following figure (DX7
  109. notation):
  110.  
  111.           +---+
  112.           | 3 |
  113.           +---+
  114.             |
  115.           +---+     +---+   +---+
  116.           | 2 |     | 5 |   | 6 |
  117.           +---+     +---+   +---+
  118.             |         |   /
  119.           +---+     +---+
  120.           | 1 |     | 4 |
  121.           +---+     +---+
  122.             |_________|
  123.  
  124. The operators #1 and #4 are the carriers in this example, the other
  125. operators work as modulators. This algorithm is consisting of two
  126. parts by three operators. In the first part operator #3 modulates
  127. operator #2, this modulates operator #1. In the second part
  128. operators #5 and #6 are modulating the operator #4.
  129.  
  130. FMsynth's operators can also generate a triangle-, sawtooth- and
  131. square wave.
  132.  
  133.  
  134. ›1m5.2 General operating hints›m
  135.  
  136. Requesters: You can hit the RETURN key instead of clicking in the
  137. right gadget and hit the ESC key instead of clicking in the left
  138. gadget.
  139.  
  140. Windows: Nearly all windows (the "Any Chord" window and requester windows
  141. excepted) are asynch, that means, you don't have to close these windows,
  142. to go on with the program. You can hit the ESC key instead of clicking in the
  143. close gadget of the windows to get rid of the windows.
  144.  
  145.  
  146. ›1m5.3 The Start›m
  147.  
  148. FMsynth can be started as usual via CLI or Workbench.
  149.  
  150.  
  151. ›1m5.4 Arguments›m
  152.  
  153. You can put the following arguments in FMsynth's icon:
  154.  
  155. PALETTE=###,###,###,###    determines the screen colors
  156.  
  157. VOICEDIR=<path>            determines the default directory for the
  158.                            .voice files. Don't forget to append a slash
  159.                            or a colon.
  160.  
  161. INSTDIR=<path>             determines the default directory for the
  162.                            instrument files. Don't forget to append
  163.                            a slash or a colon.
  164.  
  165. LACE=TRUE|FALSE            if TRUE then the screen is interlaced
  166.                            (Kick 1.3 only)
  167.  
  168. DISPLAY=<name>             The name of the display ID for FMsynth's
  169.                            screen. A list of valid names can you see
  170.                            if you call SYS:Prefs/ScreenMode
  171.  
  172. The icon is parsed also, if you start FMsynth in the CLI. Exceptions:
  173. The program is found not direct, but over the search path (Kick 1.3).
  174. The program is resident (Kick 2.04+).
  175.  
  176.  
  177. ›1m5.5 The Screen›m
  178.  
  179. The screen title displays the actual voice number and name.
  180. An "A" is displayed, if the AutoCalc mode is activated. The last
  181. thing, which is shown in the title bar is the actual chord setting.
  182.  
  183.  
  184. ›1m5.5.1 Operator›m
  185.  
  186. Here you can edit the parameters of the 6 operators.
  187.  
  188. KSc/R:     Fmsynth uses 5 sound buffers (one for each octave).
  189.            With this key rate scaling parameter you can determine
  190.            how much the speed of the envelope increases for
  191.            higher octaves. The default value of 64 leads to doubling
  192.            of the rate per octave.
  193.  
  194. KSc/L:     With the default value 64 of the key level scaling parameter
  195.            the level of all 5 sound buffers is the same. If you
  196.            increase (decrease) this value you can achieve, that
  197.            the output level of the operator is higher (lower) in high
  198.            octaves than in low octaves.
  199.  
  200.            Attention: If one or more KSc values of some operator is
  201.            not equal to 64, then the time for calculating the sound
  202.            is doubled, because in this case each of the 5 sound buffers
  203.            must be calculated individual.
  204.  
  205. Rate/1-4:  The rates of the four envelope segments. They determine,
  206.            how fast the corresponding level is reached.
  207.  
  208. Level/1-4: The levels of the four envelope segments
  209.  
  210. OL:        This parameter determines the output level of the operator.
  211.            If the operator work as carrier, then this parameter
  212.            influences the loudness. If it works as modulator, then
  213.            it influences the timbre.
  214.  
  215. Ph:        With this gadget you can determine the initial phase
  216.            of the operator. The value 63 means +180 degrees, the
  217.            value -64 stands for -180 degrees.
  218.  
  219. Freq:      In this string gadget you can enter the frequency of the
  220.            operators.
  221.  
  222. Detune:    The operators can be detuned in the range -15 upto 15.
  223.            One unit is 1.13 cents (100 cents is one half tone step).
  224.            Click on the arrow gadgets to increase or decrease the
  225.            detuning. If you hold the shift key then the detune
  226.            is changed by 5 on every click.
  227.  
  228. Mode:      Determines whether the operator's frequency is fixed or
  229.            relative. In mode "RATIO" the frequency of the operator
  230.            is relative to the note played on the keyboard. The
  231.            value "1.0" leads to the usual tuning (A = 440 Hz).
  232.  
  233.            If the mode is "FIXED" the frequency of the operator is
  234.            constant 1000 Hz, if you enter "1000.0" to the string
  235.            gadget. But this is not quite true, because not every
  236.            note has an own buffer but every octave. So the actual
  237.            frequency can be 41% more or less.
  238.  
  239.            Attention: If the mode of one or more operators is "FIXED",
  240.            then the time for calculating the sound is doubled, because
  241.            in this case each of the 5 sound buffers must be calculated
  242.            individual.
  243.  
  244. PEG:       See 4.5.3 (Pitch-EG)
  245.  
  246. Wave:      Click in the gadget in the top right corner of the field
  247.            to change the operator's waveform.
  248.  
  249.  
  250. ›1m5.5.2 LFO›m
  251.  
  252. In this field you can edit the parameters of the low frequency oscillator
  253. in realtime. The purpose of the LFO is to enrich the sound with a vibrato
  254. (either of the pitch or the amplitude).
  255.  
  256. Spd: The speed of the LFO
  257.  
  258. Del: The delay after a key press until the vibrato begins.
  259.  
  260. AMD: The amount of the amplitude modulation
  261.  
  262. PMD: The amount of the pitch modulation
  263.  
  264. You can choose among 5 different waves of the LFO.
  265.  
  266.  
  267. ›1m5.5.3 Algorithm›m
  268.  
  269. Here you can edit the algorithm. Click on a modulator and the carrier
  270. which should be modulated. If the connection already exists, it is
  271. deleted. If not, the connection is added. If the number of the modulator
  272. is less or equal to the number of the carrier then the connection is
  273. a feedback loop and is drawn in another color.
  274.  
  275. The feedback is used for sawtooth like waves and for generating
  276. white noise.
  277.  
  278. The algorithmus of section 4.1 looks here as follow:
  279.  
  280.           +---+   +---+   +---+   +---+   +---+   +---+
  281.           | 1 |   | 2 |   | 3 |   | 4 |   | 5 |   | 6 |
  282.           +---+   +---+   +---+   +---+   +---+   +---+
  283.                  /       /               /    ____/
  284.                 /       /               /____/
  285.                /       /               //
  286.           +---+   +---+   +---+   +---+   +---+   +---+
  287.           | 1 |   | 2 |   | 3 |   | 4 |   | 5 |   | 6 |
  288.           +---+   +---+   +---+   +---+   +---+   +---+
  289.             |                       |
  290.  
  291. The little marks below the carrier gadgets indicate, which operators
  292. work as carriers.
  293.  
  294.  
  295. ›1m5.5.4 Sound›m
  296.  
  297. Calc:     The sound is calculated.
  298.  
  299. Size:     The size of all 5 sound buffers all together.
  300.  
  301. Transp:   The frequency of each operator which is in mode "ratio"
  302.           is multiplied with this transpose value. If you want
  303.           to create a bass sound then you could put the value
  304.           0.25 in the gadget for tuning the sound two octaves
  305.           lower.
  306.  
  307. Feedback: The amount of the feedback (0-7). If you hold the shift
  308.           key while clicking on the arrows, then the feedback is
  309.           incremented or decremented by 5.
  310.  
  311. Mode:     Determines, whether the sound is playable polyphone or
  312.           monophone.
  313.  
  314. Filter:   Here you can turn the low pass filter of the Amiga on or
  315.           off.
  316.  
  317. Volume:   The amplitude of the sound. If the slider is right of the
  318.           middle position then distortion can occur.
  319.  
  320. RlRate:   The release rate at releasing a key. This parameter can be
  321.           changed in realtime.
  322.  
  323.  
  324. ›1m5.6 The Menus›m
  325.  
  326. ›1m5.6.1 Project›m
  327.  
  328. ›4mOpen Voice›m
  329.  
  330. Lets you load the parameters of a saved sound.
  331.  
  332. ›4mSave Voice›m
  333.  
  334. Lets you save the parameters of the actual sound in a file.
  335.  
  336. ›4mSave 8SVX-5›m
  337.  
  338. The actual sound is saved in IFF-8SVX (5 octave) format.
  339.  
  340. ›4mSave 8SVX-1›m
  341.  
  342. The actual sound is saved in IFF-8SVX (1 octave) format.
  343.  
  344. ›4mSave Raw›m
  345.  
  346. One octave of the sound is saved in raw format.
  347.  
  348. ›4mChoose Octave›m
  349.  
  350. Here you can select the octave, which is used for saving in 8SVX-1 or
  351. raw format.
  352.  
  353. ›4mCreate Icons?›m
  354.  
  355. If this menu item is checked then an icon is saved together with
  356. the data files.
  357.  
  358. ›4mFMsy Chunk›m
  359.  
  360. Controlles, whether a special FMsy Chunk is saved in the 8svx files. This chunks
  361. makes it possible to load the 8svx file with the 'Open Voice' menu item.
  362.  
  363. But some programs (like OctaMED V5) can't handle this additional chunk.
  364.  
  365. ›4mRelease Channels›m
  366.  
  367. Frees the audio channels and the CIAA timer. If you want to
  368. go on with the program click on the "Ok" Gadget.
  369.  
  370. ›4mNew›m
  371.  
  372. Resets the program to the initial settings.
  373.  
  374. ›4mAbout›m
  375.  
  376. Displays some information of the program
  377.  
  378. ›4mQuit›m
  379.  
  380. You can leave the program with this menu item.
  381.  
  382.  
  383. ›1m5.6.2 Voice›m
  384.  
  385. ›4mInit›m
  386.  
  387. Resets the actual voice to the default settings.
  388.  
  389. ›4mCopy›m
  390.  
  391. Here you can copy the actual voice to another voice.
  392.  
  393.  
  394. ›1m5.6.3 Operator›m
  395.  
  396. ›4mInit›m
  397.  
  398. Resets the actual operator to the default settings.
  399.  
  400. ›4mCopy›m
  401.  
  402. Here you can copy the settings of the actual operator to one or more
  403. other operators.
  404.  
  405. ›4mEG Copy›m
  406.  
  407. Here you can copy the envelope settings of the actual operator to
  408. one or more other operators.
  409.  
  410. ›4mFrequency›m
  411.  
  412. Here you can double or halve the frequency of the actual operator.
  413. With the "Set" item you can clear and activate the "Freq" gadget
  414. of the operator field.
  415.  
  416.  
  417. ›1m5.6.4 Special›m
  418.  
  419. ›4mAlgorithm›m
  420.  
  421. Here are presets of 10 often used algorithms.
  422.  
  423. ›4mChord›m
  424.  
  425. FMsynth can calculate chords directly. This is usefull, because
  426. the Amiga has only four audio channels and a chord would
  427. eat at least 3 of them. You can choose among 7 different chords:
  428.  
  429.         - Major         (major)
  430.         - Minor         (minor)
  431.         - Dimished      (dim)
  432.         - Suspended 4   (sus 4)
  433.         - Dominant Sept (7th)
  434.         - Major Sept    (maj 7)
  435.         - Minor Sept    (min 7)
  436.  
  437. Please note that the calculation of a chord takes three till
  438. four times as long as the calculation of the normal sound.
  439.  
  440. You can also build any other chord. If you choose this menu
  441. item, a dialog window appears. Enter the halftone numbers of the
  442. chord and the number of partials in the gadgets. For example
  443. the major chord has halftones 0, 4, 7 and the number of
  444. partials is 3.
  445.  
  446. A simplier way to specify the chord is to play it on the keyboard,
  447. the notes are then put in the gadgets automatically. Hit the space key,
  448. if you have misplayed the chord and play it again. The base
  449. key for the chord is C2 (key 'Q') on the keyboard.
  450.  
  451. You can put fractional values in the partial gadgets, so you
  452. can generate detuned sounds. The values are then between
  453. -0.2 and 0.2 typically.
  454.  
  455. ›4mCalc Sound›m
  456.  
  457. This item is equivalent to the "Calc" gadget and leads to the calculation
  458. of the sound.
  459.  
  460. ›4mAutoCalc›m
  461.  
  462. If this item is selected, then after each parameter change the sound
  463. is calculated new automatically.
  464.  
  465. ›4mLoop›m
  466.  
  467. Opens the loop window, in which you can set or clear the loop of your
  468. sound. For this purpose click at the start of the loop with the left
  469. mouse button and the right mouse button at the end of the loop. To
  470. clear the loop hit the "Off" gadget. To reset the loop to the initial
  471. setting (the setting when the loop window was opened) press the
  472. "Undo" gadget.
  473.  
  474. Only one loop can be set for all five octaves.
  475.  
  476. ›4mFourier›m
  477.  
  478. Opens the "Fourier-Analysis" window, which performs a fourier analysis
  479. over the loop of your sound. This is for looking into the harmonics of
  480. the sound.
  481.  
  482. ›4mPitch-EG›m
  483.  
  484. This opens the "Pitch-EG" window. Here you can set the pitch envelope
  485. of your sound. The level 63 means increasing of the pitch by one
  486. octave. Level -32 stands for decreasing the pitch by one octave and
  487. level -64 means frequency null.
  488.  
  489. To enable the Pitch-EG for an operator, you must set the PEG gadget
  490. to "ON".
  491.  
  492. ›4mGraph. EG›m
  493.  
  494. Opens the "Graphic EG" Window. Here you can edit the envelope of the
  495. actual Operator with the mouse. Click on one of the four knobs and
  496. move it.
  497.  
  498. The scale is adjusted to the lenght of the actual sound, so that
  499. the left edge of the edit field corresponds to the begin of the
  500. sound and the right edge of the field corresponds to the end of
  501. the sound. If the rate scaling parameter is not on the default
  502. value of 64 then this correspondance is not given anymore.
  503.  
  504.  
  505. ›1m5.6.5 MIDI›m
  506.  
  507. ›4mReceive›m
  508.  
  509. Here you can set the Midi channel for receiving midi commands.
  510.  
  511. ›4mVel sens›m
  512.  
  513. Determines the velocity curve.
  514.  
  515. ›4mTranspose›m
  516.  
  517. With this menu item a transpose of midi notes in the range +/- 2 octaves
  518. is possible.
  519.  
  520.  
  521. ›1m5.7 Keys›m
  522.  
  523. ›1m5.7.1 The Keyboard›m
  524.  
  525.   Octave 2         2   3       5   6   7       9   0       '
  526.                  Q   W   E   R   T   Z   U   I   O   P   Ü   +
  527.  
  528.   Octave 1          S   D   G   H   J       L   Ö      #
  529.                   Y   X   C   V   B   N   M   ,   .   -
  530.  
  531. The keyboard at the lower part of the screens shows, which keys
  532. are pressed actual (only for PAL able Amigas).
  533.  
  534.  
  535. ›1m5.7.2 Functionkeys›m
  536.  
  537. Hit F1 - F5 to switch between the five voices. For voice #2 upto #5
  538. you must first set up the buffer by activating the "Size" Gadget and
  539. specifying the desired length of the sound buffer.
  540.  
  541. With F6 - F10 you determine, which octaves can be reached with the
  542. keyboard. The offset is displayed as a little mark below the keyboard
  543. picture.
  544.  
  545.  
  546. ›1m5.7.3 Space key›m
  547.  
  548. At each time you can stop the sound output with the space key.
  549.  
  550.  
  551. ›1m5.8 ARexx›m
  552.  
  553. FMsynth has an ARexx-Port called "FMSYNTH". It understands the
  554. following commands:
  555.  
  556. openvoice <name>             Opens voice <name>. Returns 5 on error.
  557.  
  558. savevoice <name>             Saves the actual voice under the file name <name>.
  559.                              Returns 5 on error.
  560.  
  561. calcsound                    The sound is calculated.
  562.  
  563. save8svx5 <name>             Saves the actual sound to file <name> in
  564.                              8SVX 5-Oktav format. RC=5 on error.
  565.  
  566. save8svx1 <name> [<#(1-5)>]  Save the specified octave of the actual voice
  567.                              to file <name> as 8SVX 1 octave file.
  568.                              Returns 5 on error.
  569.  
  570. saveraw   <name> [<#(1-5)>]  Saves the sound in raw format.
  571.  
  572. voice     [<#(1-5)>]         Sets the specified voice and returns the
  573.                              old voice number.
  574.  
  575. operator  [<#(1-6)>]         Sets the specified operator und returns
  576.                              the old operator number.
  577.  
  578. openwindow <name> [<#> <#>]  Opens the window <name> on the specified
  579.                              position. <name> can be one of:
  580.                              f(ourier), l(oop), p(itcheg), g(raphiceg)
  581.  
  582. noteon    {<#(0-60)>}        Presses the specified notes.
  583.  
  584. noteoff   {<#(0-60)>}        Releases the specified notes.
  585.  
  586. pause     <#.#>              Performs a pause with the specified length
  587.                              in seconds.
  588.  
  589. quit                         Quits FMsynth.
  590.  
  591. If you start FMsynth the rexx program 'startup.fmsy' is called.
  592. The keys Shift-F1 till Shift-F10 call the rexx programs sf1.fmsy till
  593. sf10.fmsy. The cursor keys call the rexx programs up.fmsy, down.fmsy,
  594. left.fmsy and right.fmsy.
  595.  
  596. The included Rexx programs:
  597.  
  598. left.fmsy, right.fmsy: Switches to the next/previous voice
  599. up.fmsy, down.fmsy:    Switches to the next/previous operator
  600. sf1.fmsy:              Plays a random melody
  601. sf2.fmsy:              Plays a melody successively with all voices
  602.                        in the voice directory
  603. sf10.fmsy:             Aborts all running Rexx commands
  604. startup.fmsy:          Opens the Pitch-EG window
  605.  
  606.  
  607. ›1m5.9 MIDI›m
  608.  
  609. FMsynth supports the following Midi commands:
  610.  
  611. - Note on  (with velocity)
  612. - Note off
  613. - Pitch bend (+/- 2 half tones)
  614. - Program change (0..4 for voice #1..#5)
  615.  
  616.  
  617. ›1m5 Some tips for sound programming›m
  618.  
  619. Good sounds have a dynamic spectrum, that means its harmonics change
  620. continuous. There are two ways for achieving this. First with the
  621. envelope on the modulators and second with detuning.
  622.  
  623.  
  624. ›1m6 Compatibility›m
  625.  
  626. If you want to use your sounds in other programs like Sonix or
  627. MED (© Teijo Kinnunnen) you should consider that the realtime
  628. parameters (release rate and LFO) have only affect if you play
  629. the sounds in FMsynth. They have no effect to the 8svx file.
  630.  
  631. If you play a 8SVX 5-octave sound in MED, you will notice, that
  632. the sound quality is not as good, as if you play the sound
  633. directly in FMsynth. This reason for this is, that FMsynth
  634. uses a higher sampling rate for playing the sound on average.
  635.  
  636.  
  637. ›1m8 Support›m
  638.  
  639. Thanx for support to following persons:
  640.  
  641.   - Stephan Fuhrmann
  642.   - Ewan MacPherson
  643.   - Jeff Harrington,
  644.   - Bill Schottstaedt
  645.   - Jürgen Zimmermann
  646.  
  647. And last but not least Fridtjof Siebert for the great
  648. Amiga Oberon Compiler.
  649.  
  650.  
  651. ›1m9 The end›m
  652.  
  653. If you have programmed good sounds, then please send them to me
  654. (in voice format not 8svx format!). The best sounds are included
  655. to the next release of FMsynth.
  656.  
  657.  
  658. ›3mMuch fun!›m
  659.  
  660.